package com.warom.sdg;

import android.util.Log;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * Modbus文件适配器
 * 用于替代j2mod库中直接访问File私有字段的部分
 */
public class ModbusFileAdapter {
    private static final String TAG = "ModbusFileAdapter";

    /**
     * 安全地打开文件输入流，避免直接访问File.path字段
     * 
     * @param file 文件对象
     * @return 文件输入流
     * @throws IOException 如果打开文件失败
     */
    public static InputStream openFileInputStream(File file) throws IOException {
        if (file == null) {
            throw new IOException("File is null");
        }
        
        try {
            // 使用File对象的公开方法而不是反射
            Log.d(TAG, "打开文件: " + file.getAbsolutePath());
            return new FileInputStream(file);
        } catch (IOException e) {
            Log.e(TAG, "打开文件失败: " + e.getMessage(), e);
            throw e;
        }
    }
    
    /**
     * 安全地获取文件路径，避免直接访问File.path字段
     * 
     * @param file 文件对象
     * @return 文件路径
     */
    public static String getFilePath(File file) {
        if (file == null) {
            return null;
        }
        
        try {
            // 使用File对象的公开方法而不是反射
            return file.getAbsolutePath();
        } catch (Exception e) {
            Log.e(TAG, "获取文件路径失败: " + e.getMessage(), e);
            return file.toString();
        }
    }
} 